home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / blankery / bserverdir / sources / server / gadgets.c < prev    next >
C/C++ Source or Header  |  1994-11-25  |  5KB  |  176 lines

  1. #include <exec/types.h>
  2. #include <exec/memory.h>
  3. #include <intuition/gadgetclass.h>
  4.  
  5. #include <clib/exec_protos.h>
  6. #include <clib/intuition_protos.h>
  7. #include <clib/gadtools_protos.h>
  8. #include <string.h>
  9.  
  10. #include "/include/server.h"
  11.  
  12. struct Gadget *glist, *gad, *timeout_gdg, *active_gdg,
  13.    *random_gdg, *hide_gdg, *quit_gdg, *blank_gdg, *modeid_gdg,
  14.    *kill_gdg, *list_gdg;
  15. extern struct List ClientsList, *ModeList;
  16. extern struct ModeNode *DisplayNode;
  17. extern UWORD delaySecs;
  18. extern BOOL CommodityActive, RandomClient;
  19. extern UWORD DefaultClient;
  20.  
  21. extern void FreeClientsList( void );
  22. extern struct List *CreateModeList( void );
  23. extern void DeleteModeList( void );
  24. extern void GetDisplayNodeFromID( void );
  25.  
  26.  /****************
  27.  *               *
  28.  * GADGETS STUFF *
  29.  *               *
  30.  ****************/
  31.  
  32. struct VisualInfo *vi;
  33. UWORD fonth;
  34. struct NewGadget newgdg = { 0, 0, 0, 0, NULL, NULL, 0, 0, 0, 0 };
  35. struct Screen *WBS;
  36. struct Library *GadToolsBase;
  37. struct IntuitionBase *IntuitionBase;
  38. UWORD wleft = (UWORD)~0, wtop = (UWORD)~0;
  39.  
  40. struct TextAttr topazFont = { "topaz.font", 8, NULL, FPF_ROMFONT };
  41.  
  42. BOOL SetUpGadgets( void )
  43. {
  44. if ( CreateModeList() )
  45.     {
  46.     GetDisplayNodeFromID();
  47.  
  48.     if ( WBS = LockPubScreen( NULL ) )
  49.         {
  50.         fonth = WBS->Font->ta_YSize;
  51.  
  52.         if ( wleft == ~0 && wtop == ~0 )
  53.             {
  54.             wleft = (WBS->Width - 300)>>1;
  55.             wtop = (WBS->Height - fonth - 138 )>>1;
  56.             }
  57.  
  58.         if ( vi = GetVisualInfo( WBS, TAG_END ) )
  59.             {
  60.             gad = CreateContext (&glist);
  61.  
  62.             newgdg.ng_Flags = PLACETEXT_LEFT;
  63.             newgdg.ng_TopEdge = WBS->WBorTop + fonth + 4;
  64.             newgdg.ng_Height = 12;
  65.             newgdg.ng_TextAttr = &topazFont;
  66.             newgdg.ng_VisualInfo = vi;
  67.  
  68.             newgdg.ng_Width = 38;
  69.             newgdg.ng_LeftEdge = WBS->WBorLeft + 70;
  70.             newgdg.ng_GadgetText = "TimeOut";
  71.             timeout_gdg = gad = CreateGadget( INTEGER_KIND, gad, &newgdg,
  72.                 GTIN_Number, delaySecs,
  73.                 GTIN_MaxChars, 5,
  74.                 GT_Underscore, '_', TAG_END );
  75.  
  76.             newgdg.ng_GadgetID = RANDOM_GDG;
  77.             newgdg.ng_TopEdge += 14;
  78.             newgdg.ng_LeftEdge = WBS->WBorLeft + 82;
  79.             newgdg.ng_GadgetText = "_Random";
  80.             random_gdg = gad = CreateGadget( CHECKBOX_KIND, gad, &newgdg,
  81.                 GTCB_Checked, RandomClient,
  82.                 GT_Underscore, '_', TAG_END );
  83.  
  84.             newgdg.ng_GadgetID = ACTIVE_GDG;
  85.             newgdg.ng_TopEdge += 12;
  86.             newgdg.ng_GadgetText = "_Active";
  87.             active_gdg = gad = CreateGadget( CHECKBOX_KIND, gad, &newgdg,
  88.                 GTCB_Checked, CommodityActive,
  89.                 GT_Underscore, '_', TAG_END );
  90.  
  91.             newgdg.ng_GadgetID = HIDE_GDG;
  92.             newgdg.ng_TopEdge += 14;
  93.             newgdg.ng_LeftEdge = WBS->WBorLeft + 8;
  94.             newgdg.ng_Flags = 0;
  95.             newgdg.ng_Width = 100;
  96.             newgdg.ng_GadgetText = "_Hide";
  97.             hide_gdg = gad = CreateGadget( BUTTON_KIND, gad, &newgdg,
  98.                 GT_Underscore, '_', TAG_END );
  99.             
  100.             newgdg.ng_GadgetID = QUIT_GDG;
  101.             newgdg.ng_TopEdge += 14;
  102.             newgdg.ng_GadgetText = "_Quit";
  103.             quit_gdg = gad = CreateGadget( BUTTON_KIND, gad, &newgdg,
  104.                 GT_Underscore, '_', TAG_END );
  105.  
  106.             newgdg.ng_GadgetID = BLANK_GDG;
  107.             newgdg.ng_TopEdge += 14;
  108.             newgdg.ng_GadgetText = "_Blank";
  109.             blank_gdg = gad = CreateGadget( BUTTON_KIND, gad, &newgdg,
  110.                 GT_Underscore, '_', TAG_END );
  111.  
  112.             newgdg.ng_GadgetID = KILL_GDG;
  113.             newgdg.ng_TopEdge =  WBS->WBorTop + fonth + 72;
  114.             newgdg.ng_LeftEdge = WBS->WBorLeft + 124;
  115.             newgdg.ng_Width = 160;
  116.             newgdg.ng_GadgetText = "_Kill selected";
  117.             kill_gdg = gad = CreateGadget( BUTTON_KIND, gad, &newgdg,
  118.                 GT_Underscore, '_', TAG_END );
  119.  
  120.             newgdg.ng_GadgetID = SHOWINTERFACE_GDG;
  121.             newgdg.ng_TopEdge -= 14;
  122.             newgdg.ng_Width = 160;
  123.             newgdg.ng_GadgetText = "Add _client";
  124.             kill_gdg = gad = CreateGadget( BUTTON_KIND, gad, &newgdg,
  125.                 GT_Underscore, '_', TAG_END );
  126.  
  127.             newgdg.ng_GadgetID = LIST_GDG;
  128.             newgdg.ng_TopEdge = WBS->WBorTop + fonth + 4;
  129.             newgdg.ng_GadgetText = NULL;
  130.             newgdg.ng_Height = 57;
  131.             newgdg.ng_Flags = PLACETEXT_ABOVE;
  132.             list_gdg = gad = CreateGadget( LISTVIEW_KIND, gad, &newgdg,
  133.                 GTLV_Labels, &ClientsList,
  134.                 GTLV_ShowSelected, NULL,
  135.                 GTLV_Top, DefaultClient,
  136.                 GTLV_Selected, DefaultClient,
  137.                 TAG_END );
  138.  
  139.             newgdg.ng_GadgetID = MODEID_GDG;
  140.             newgdg.ng_TopEdge =  WBS->WBorTop + fonth + 86;
  141.             newgdg.ng_LeftEdge = WBS->WBorLeft + 8;
  142.             newgdg.ng_Width = 276;
  143.             newgdg.ng_Height = 49;
  144.             newgdg.ng_GadgetText = NULL;
  145.             modeid_gdg = gad = CreateGadget( LISTVIEW_KIND, gad, &newgdg,
  146.                 GTLV_Labels, ModeList,
  147.                 GTLV_ShowSelected, NULL,
  148.                 GTLV_Top, DisplayNode->mn_Index,
  149.                 GTLV_Selected, DisplayNode->mn_Index,
  150.                 TAG_END );
  151.  
  152.             /* Set up gadgets */
  153.             if ( gad )
  154.                 return( TRUE );
  155.  
  156.             FreeGadgets( glist );
  157.             }
  158.         FreeVisualInfo( vi );
  159.         vi = NULL;
  160.         }
  161.     UnlockPubScreen( NULL, WBS );
  162.     }
  163. DeleteModeList();
  164.  
  165. return( FALSE );
  166. }
  167.  
  168.  
  169. void RemoveGadgets( void )
  170. {
  171. FreeGadgets( glist );
  172. FreeVisualInfo( vi );
  173. UnlockPubScreen( NULL, WBS );
  174. DeleteModeList();
  175. }
  176.